package com.yuandian.api.management.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yuandian.api.management.validate.UpdateFlag;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 解密方式配置表-实体
 * @author zfsn
 * @date 2023-3-23
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "解密方式配置表", description = "")
@TableName("conf_decrypt")
public class ConfDecrypt extends BasePage<ConfDecrypt> {

	/**
	 * 主键，唯一标识数据
	 */
	@NotNull(message = "id不能为空", groups = UpdateFlag.class)
	@ApiModelProperty(value = "主键", notes = "主键，唯一标识数据")
	@TableId(type = IdType.AUTO)
	private Integer id;

	/**
	 * 服务资源编码
	 */
	@ApiModelProperty(value = "服务资源编码", notes = "服务资源编码")
	private String resourceCode;

	/**
	 * 密文来源
	 */
	@ApiModelProperty(value = "密文来源", notes = "密文来源")
	private String source;

	/**
	 * 密文关键字
	 */
	@ApiModelProperty(value = "密文关键字", notes = "密文关键字")
	private String keyword;

	/**
	 * 密文正则表达式
	 */
	@ApiModelProperty(value = "密文正则表达式", notes = "密文正则表达式")
	private String matchRegular;

	/**
	 * 加密算法名称
	 */
	@ApiModelProperty(value = "加密算法名称", notes = "加密算法名称")
	private String ecryptAlg;

	/**
	 * 加密模式
	 */
	@ApiModelProperty(value = "加密模式", notes = "加密模式")
	private String ecryptMode;

	/**
	 * 填充值
	 */
	@ApiModelProperty(value = "填充值", notes = "填充值")
	private String fillValue;

	/**
	 * 加密位数
	 */
	@ApiModelProperty(value = "加密位数", notes = "加密位数")
	private Integer ecryptBit;

	/**
	 * 秘钥
	 */
	@ApiModelProperty(value = "秘钥", notes = "秘钥")
	private String secretKey;

	/**
	 * 偏移量
	 */
	@ApiModelProperty(value = "偏移量", notes = "偏移量")
	private Integer offset;

	/**
	 * 密文编码方式
	 */
	@ApiModelProperty(value = "密文编码方式", notes = "密文编码方式")
	private String encodeType;

	/**
	 * 创建人
	 */
	@ApiModelProperty(value = "创建人", notes = "创建人")
	private String createBy;

	/**
	 * 创建时间
	 */
	@ApiModelProperty(value = "创建时间", notes = "创建时间")
	private LocalDateTime createTime;

	/**
	 * 更新人
	 */
	@ApiModelProperty(value = "更新人", notes = "更新人")
	private String updateBy;

	/**
	 * 更新时间
	 */
	@ApiModelProperty(value = "更新时间", notes = "更新时间")
	private LocalDateTime updateTime;

	/**
	 * 是否逻辑删除，0：否、1：是
	 */
	@ApiModelProperty(value = "是否逻辑删除", notes = "是否逻辑删除，0：否、1：是")
	private Integer isDel;

	/**
	 * 备注
	 */
	@ApiModelProperty(value = "备注", notes = "备注")
	private String remarks;

}